package qgs.zisu.javaconcurrency.javaconcurrency.chapter7_synchronized;

/**
 * @Author: 蔡翔
 * @Date: 2019/10/11 14:41
 * @Version 1.0
 *
 * synchronize 有一个缺点：就是A线程占用了synchronize锁，B线程只能等着A不好，B就没有，去打断A线程也不行。
 */
public class SynchronizedStaticTest {
    public static void main(String[] args) {
        new Thread("T1"){
            @Override
            public void run(){
                SynchronizedStatic.m1();
            }
        }.start();

        new Thread("T2"){
            @Override
            public void run(){
                SynchronizedStatic.m2();
            }
        }.start();

        new Thread("T3"){
            @Override
            public void run(){
                SynchronizedStatic.m3();
            }
        }.start();

        /**
         * 执行结果是：
         *static :T1
         * m3 T3
         * m1T1
         * m2 T2
         *
         * 原因：T1 线程在执行m1 方法的时候，遇到类的锁（静态锁），先要对类解锁才能执行，类里面的方法。
         * 而 类一旦解锁
         **/
    }
}